package com.projetosi.web.server.sistema.objetos;

import com.projetosi.web.server.sistema.interfaces.Atividade;

public class AtividadeEmprestimoEmAndamento implements Atividade{
	
	private String nomeDoEmprestador, nomeDoItem, nomeDoBeneficiado, template, idAtividade;
	
	
	public AtividadeEmprestimoEmAndamento(String nomeDoEmprestador, String nomeDoItem, String nomeDoBeneficiado) throws Exception{
		setNomeDoEmprestador(nomeDoEmprestador);
		setNomeDoItem(nomeDoItem);
		setNomeDoBeneficiado(nomeDoBeneficiado);
		setTemplate(criarTemplateDaAtividade());
		
	}

	public String getNomeDoEmprestador() {
		return nomeDoEmprestador;
	}

	public void setNomeDoEmprestador(String nomeDoEmprestador) throws Exception {
		if(nomeDoEmprestador== null || nomeDoEmprestador.trim().isEmpty())
			throw new Exception("Nome do emprestador nao pode ser null ou vazio");
		this.nomeDoEmprestador = nomeDoEmprestador;
	}

	public String getNomeDoItem() {
		return nomeDoItem;
	}

	public void setNomeDoItem(String nomeDoItem) throws Exception {
		if(nomeDoItem== null || nomeDoItem.trim().isEmpty())
			throw new Exception("Nome do item nao pode ser null ou vazio");
		this.nomeDoItem = nomeDoItem;
	}

	public String getNomeDoBeneficiado() {
		return nomeDoBeneficiado;
	}

	public void setNomeDoBeneficiado(String nomeDoBeneficiado) throws Exception {
		if(nomeDoBeneficiado== null || nomeDoBeneficiado.trim().isEmpty())
			throw new Exception("Nome do beneficiado nao pode ser null ou vazio");
		this.nomeDoBeneficiado = nomeDoBeneficiado;
	}

	public void setTemplate(String template) throws Exception{
		if(template== null || template.trim().isEmpty())
			throw new Exception("Template nao pode ser null ou vazio");
		this.template = template;
	}
	@Override
	public String criarTemplateDaAtividade() {
		return getNomeDoEmprestador() + " emprestou " + getNomeDoItem() + " a " + getNomeDoBeneficiado();
		
	}

	@Override
	public String getTemplate() {
		return template;
	}

	@Override
	public String getIdAtividade() {
		return idAtividade;
	}

	@Override
	public void setIdAtividade(String id) {
		this.idAtividade = id;
	}

	@Override
	public boolean equals(Object obj) {
		if(!(obj instanceof AtividadeEmprestimoEmAndamento)){
			return false;
		}
		AtividadeEmprestimoEmAndamento outra = (AtividadeEmprestimoEmAndamento) obj;
		return this.getNomeDoBeneficiado().equals(outra.getNomeDoBeneficiado()) &&
			   this.getNomeDoEmprestador().equals(outra.getNomeDoEmprestador()) &&
			   this.getNomeDoItem().equals(outra.getNomeDoItem());
	
	}
	
}
